'use strict'
const http=require('http');
/*
.jpg .jepg ->image/jepg
.png ->image/png
.gif ->image/gif
.ico ->image/x-icon
.txt ->text/plain
.json ->text/json或application.json
.xml ->text/xml或application/xml

*/
let html=`
<!DOCTYPE html>
<html>
  <head>
   <title>First HTTP</title>
  </head>
  <body>
   你好
   </body>
</html>
`
let routerTable={
    '/':async(request,response)=>{
        response.setHeader('content-type','text/html;charset=utf-8')
        response.end(html);
    },
    '/test':async(request,response)=>{
        let status=parseInt(Math.random()*200)+199
        response.statusCode=status
        response.end('test end')
    },
    './data':async(request,response)=>{
        let bufferList=[];
        let bufferLength=0;
        request.on('data',chunk=>{
            bufferLength+=chunk.length
            bufferList.push(chunk);
            })
        let bodyData=null;
        request.on('end',()=>{
           if(bufferList.length>0)
          {bodyData=Buffer.concat(bufferList,bufferLength);
          bufferList=[];}
          if(bodyData){
            response.end(bodyData);
          }else{
           response.end()
          }
        })
    }}

http.createServer((request,response)=>{
    //content-type不影响内容处理方式
//    response.setHeader('content-type','text/html;charset=utf-8')
if(!routerTable[request.url]){
    response.statusCode=404
    response.end('page not found')
    return
}
routerTable[request.url](request,response)

}).listen(3456)
//    response.setHeader('content-type','text/plain;charset=utf-8')
    // response.end(html);